<script>
  // 给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。

  // 说明：

  // 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗？

  // 来源：力扣（LeetCode）
  // 链接：https://leetcode.cn/problems/single-number

  //   输入: [2, 2, 1];
  //   输出: 1;

  // 异或运算符
  // 当且仅当只有一个表达式的某位上为 1 时，结果的该位才为 1。否则结果的该位为 0，简单的说就是-----相同为 0，不同为 1

  /**
   * @param {number[]} nums
   * @return {number}
   */
  var nums = [2, 2, 1, 1, 3, 4, 3];
  var singleNumber = function (nums) {
    var result = 0;
    for (var i = 0; i < nums.length; i++) {
      result = result ^ nums[i];
      console.log(result);
    }

    return result;
  };
  console.log(singleNumber(nums));
</script>
